home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 14550 / 14550.xpi / chrome / chrome.jar / content / reloadallPopup.xul < prev   
Extensible Markup Language  |  2009-11-02  |  8KB  |  210 lines

  1. <?xml version="1.0"?>
  2. <!-- ***** BEGIN LICENSE BLOCK *****
  3.  -  Reload All! Mozilla Firefox Addon - This is the addon popup XUL file
  4.  -  
  5.  -  Copyright (C) 2009  Dhruwat Bhagat <unitedronaldo@yahoo.com>
  6.  -
  7.  -
  8.  -  This program is free software; you can redistribute it and/or modify
  9.  -  it under the terms of the GNU General Public License as published by
  10.  -  the Free Software Foundation; either version 2 of the License, or
  11.  -  (at your option) any later version.
  12.  -
  13.  -  This program is distributed in the hope that it will be useful,
  14.  -  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  -  GNU General Public License for more details.
  17.  -
  18.  -  You should have received a copy of the GNU General Public License
  19.  -  along with this program; if not, write to the Free Software
  20.  -  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  - ***** END LICENSE BLOCK ***** -->
  22. <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  23. <?xml-stylesheet href="chrome://reloadall/skin/reloadallPopup.css" type="text/css"?>
  24.  
  25. <!DOCTYPE window SYSTEM "chrome://reloadall/locale/reloadAllPopup.dtd">
  26. <window
  27.     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  28.     title="&title;"
  29.     width="675" height="575"
  30.     id="reloadAll-Window"
  31.     class="selectlinks"
  32.     onload="setView();"
  33.     persist="width height screenX screenY"
  34.     style="margin: 0px;">
  35.     
  36.   <script type="text/javascript">
  37.   <![CDATA[
  38.     var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
  39.     var mainWindow = wm.getMostRecentWindow("navigator:browser");
  40.     var tabbrowser = mainWindow.getBrowser();
  41.     var numTabs = tabbrowser.browsers.length;
  42.     var tabInfo = {};
  43.     var tree = document.getElementById('urlList');
  44.     function TabInfo(browser){
  45.         this.selected = "false";
  46.         this.url = browser.currentURI.spec;
  47.         this.description = browser.contentTitle;
  48.     }
  49.     function collectTabInfo() {
  50.         for(var index = 0; index < numTabs; index++) {
  51.             var tab = tabbrowser.getBrowserAtIndex(index);
  52.             tabInfo[index] = new TabInfo(tab);            
  53.         }
  54.     }
  55.     
  56.     var treeView = {  
  57.         rowCount : numTabs,  
  58.     getCellText : function(row,column){ 
  59.       var t = tabInfo[row];
  60.       switch(column.id) {
  61.         case 'selected':
  62.           return this.getCellValue(row,column);
  63.         case 'colURL':
  64.           return t.url;
  65.         case 'colDesc':
  66.           return t.description;
  67.       }
  68.         },
  69.     getCellValue : function(row,column){
  70.       return tabInfo[row].selected;
  71.     },  
  72.     setCellValue : function(row,column,value){
  73.       tabInfo[row].selected = value;
  74.       if (column) {
  75.         this.treebox.invalidateRow(row);
  76.       }
  77.     },
  78.         setTree: function(treebox){ this.treebox = treebox; },
  79.     isEditable: function(idx, col) {
  80.       //return (col.index == 0);
  81.       return true;
  82.     },  
  83.         isContainer: function(row){ return false; },  
  84.         isSeparator: function(row){ return false; },  
  85.         isSorted: function(){ return false; },  
  86.         getLevel: function(row){ return 0; },  
  87.         getImageSrc: function(row,col){ return null; },  
  88.     getRowProperties: function(row,props){},  
  89.         getCellProperties: function(row,col,props){},  
  90.          getColumnProperties: function(colid,col,props){}  
  91.      };  
  92.    
  93.  function setView(){  
  94.      collectTabInfo();
  95.      var tree = document.getElementById('urlList')
  96.      tree.view = treeView;
  97.      
  98.  }  
  99.   function selectAll(){
  100.     var view = document.getElementById('urlList').view;
  101.     view.selection.selectAll();
  102.     /*Do we need this?*/
  103.     document.getElementById('urlList').boxObject.invalidate();
  104.     //view.treebox.invalidate();
  105.     
  106.   }
  107.  
  108.   function invertSelection(){
  109.     var view = document.getElementById('urlList').view;
  110.     var selection = view.selection;
  111.  //   selection.invertSelection();
  112.     for (var index = 0; index < numTabs; index++) {
  113.       selection.toggleSelect(index);
  114.      
  115.     }
  116.     /*Do we need this?*/
  117.     document.getElementById('urlList').boxObject.invalidate();
  118.     //view.treebox.invalidate();
  119.   }
  120.   function reloadAll(){
  121.     for (var index = 0; index < numTabs; index++) {
  122.       if (tabInfo[index].selected == "true") {
  123.     tabbrowser.getBrowserAtIndex(index).reload();
  124.       }
  125.     }
  126.     window.close();
  127.   }
  128.   function rangeAlert() {
  129.     var selection = document.getElementById('urlList').view.selection;
  130.     var start = new Object();
  131.     var end = new Object();
  132.     var numRanges = selection.getRangeCount();
  133.     var ranges = '';
  134.     for (var t = 0; t < numRanges; t++){
  135.       ranges = ranges + ' : ' + t;
  136.       selection.getRangeAt(t,start,end);
  137.       ranges = ranges + ' - start value : ' + start.value + ' end value : ' + end.value + '\n'; 
  138.  
  139.     }
  140.     alert(ranges);
  141.   }
  142.   function checkRow(value) {
  143.     var view = document.getElementById('urlList').view
  144.     var selection = view.selection;
  145.     var start = new Object();
  146.     var end = new Object();
  147.     var numRanges = selection.getRangeCount();
  148.     for (var r = 0; r < numRanges; r++){
  149.       selection.getRangeAt(r,start,end);
  150.       for (var i = start.value; i <= end.value; i++) {
  151.     view.setCellValue(i,null,value);
  152.       }
  153.     }
  154.     document.getElementById('urlList').boxObject.invalidate();
  155.     //view.treebox.invalidate();
  156.   }
  157.   function toggleRow() {
  158.     var view = document.getElementById('urlList').view
  159.     var selection = view.selection;
  160.     var start = new Object();
  161.     var end = new Object();
  162.     var selected;
  163.     var numRanges = selection.getRangeCount();
  164.     for (var rangeNum = 0; rangeNum < numRanges; rangeNum++){
  165.       selection.getRangeAt(rangeNum,start,end);
  166.       for (var index = start.value; index <= end.value; index++) {
  167.     selected = tabInfo[index].selected;
  168.     selected = selected == 'true'? 'false' : 'true';
  169.     view.setCellValue(index,null,selected);
  170.       }
  171.     }
  172.     document.getElementById('urlList').boxObject.invalidate();
  173.    //view.treebox.invalidate();
  174.   } 
  175.   ]]>
  176.   </script>
  177.   <popup id="reloadallPopup">
  178.     <menuitem class="menuitem-iconic" id="checkurl-menuitem" label="&checkselitems;" oncommand="checkRow('true');" />
  179.     <menuitem class="menuitem-iconic" id="uncheckurl-menuitem" label="&uncheckselitems;" oncommand="checkRow('false');" />
  180.     <menuitem class="menuitem-iconic" id="toggleurl-menuitem" label="&toggleselitems;" oncommand="toggleRow();" />
  181.     <menuseparator id="msep1" />
  182.     <menuitem id="selectall-menuitem" class="menuitem-iconic" label="&selectall;" oncommand="selectAll();" />
  183.     <menuitem id="invertselection-menuitem" class="menuitem-iconic" label="&invertselection;" oncommand="invertSelection();" />
  184.     <menuseparator id="msep3" />
  185.   </popup>
  186.   <tree    id="urlList" flex="1"
  187.         context="reloadallPopup"
  188.         seltype="multiple" enableColumnDrag="true"
  189.         style="margin:0px;" editable="true"
  190.         autostretch="always">
  191.         <treecols>
  192.             <treecol id="selected" type="checkbox" fixed="true" editable="true" ignoreincolumnpicker="true" />
  193.             <treecol id="colURL" label="Url" flex="35" crop="right" persist="width hidden" />
  194.             <splitter class="tree-splitter"/>
  195.             <treecol id="colDesc" label="Description" flex="9" persist="width hidden" />
  196.             
  197.         </treecols>
  198.         <treechildren/>
  199.           
  200.   </tree>
  201.   <vbox>
  202.     <hbox>
  203.       <button id="selectall" label="&selectall;" oncommand="selectAll();"/>
  204.       <button id="toggleSelection" label="&invertselection;" oncommand="invertSelection();"/>
  205.       <button id="ReloadAll" label="&reloadallexclam;" oncommand="reloadAll();"/>
  206.     <!--  <button id="rangeAlert" label="rangeAlert" oncommand="rangeAlert();"/>  -->
  207.     </hbox>
  208.   </vbox>
  209. </window>
  210.